package com.expert.miniapp.dao;

import lombok.Data;
import lombok.ToString;
import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 科研专家实体类
 * 对应数据库表：research_expert
 */
@Data
@ToString
@Entity
@Table(name = "research_expert")
public class ResearchExpert {
    
    /**
     * 专家唯一标识（主键）
     */
    @Id
    @Column(name = "expert_id", length = 20, nullable = false)
    @JsonProperty("expertId")
    private String expertId;
    
    /**
     * 头像URL
     */
    @Column(name = "avatar_url", length = 500)
    @JsonProperty("avatarUrl")
    private String avatarUrl;
    
    /**
     * 昵称
     */
    @Column(name = "nickname", length = 10)
    @JsonProperty("nickname")
    private String nickname;
    
    /**
     * 真实姓名
     */
    @Column(name = "real_name", length = 12)
    @JsonProperty("realName")
    private String realName;
    
    /**
     * 所属机构
     */
    @Column(name = "organization", length = 60)
    @JsonProperty("organization")
    private String organization;
    
    /**
     * 研究方向
     */
    @Column(name = "research_directions", length = 200)
    @JsonProperty("researchDirections")
    private String researchDirections;
    
    /**
     * 擅长行业
     */
    @Column(name = "skilled_industries", length = 200)
    @JsonProperty("skilledIndustries")
    private String skilledIndustries;
    
    /**
     * 详细介绍
     */
    @Column(name = "detailed_intro", columnDefinition = "TEXT")
    @JsonProperty("detailedIntro")
    private String detailedIntro;
    
    /**
     * 分类
     */
    @Column(name = "categories", length = 50)
    @JsonProperty("categories")
    private String categories;
    
    /**
     * 标签
     */
    @Column(name = "tags", length = 50)
    @JsonProperty("tags")
    private String tags;
    
    /**
     * 城市
     */
    @Column(name = "city", length = 30)
    @JsonProperty("city")
    private String city;
    
    /**
     * 显示权重
     */
    @Column(name = "display_weight")
    @JsonProperty("displayWeight")
    private Integer displayWeight;
}